'''
Created on 01/05/2013

@author: belentwi
'''
from flask_wtf import Form
from flask_wtf import TextField
from flask_wtf import IntegerField
from flask_wtf import SelectField
from flask_wtf import FileField
from flask_wtf import TextAreaField
from flask_wtf import SelectMultipleField
from flask_wtf import widgets

from app.validators import Required
from app.validators import length

class ItemBuscar(Form):
    """
        Formulario de busqueda de items
    """
    id = TextField()
    nombre = TextField()
    version = TextField()
    prioridad = TextField()
    costo = TextField()
    complejidad = TextField()
    duracion = TextField()
    estado = TextField()
    descripcion = TextField()
    observacion = TextField()
    numero = TextField()
    fecha_creacion = TextField()
    fase = TextField()
    linea_base = TextField()
    
class ItemCrear(Form):
    """
        Formulario de creacion de items
    """
    nombre = TextField('Nombre', [(Required()) and length(min=0, max=50)])
    prioridad = SelectField('Prioridad:')
    costo = IntegerField('Costo', [Required()])
    complejidad = TextField('Complejidad', [Required()])
    duracion = TextField('Duracion', [Required()])
    descripcion = TextField('Descripcion')
    observacion = TextField('Observacion')


class ItemNoEditable(Form):
    """
        Formulario de consulta de items
    """
    nombre = TextField('Nombre:') 
    tipo = TextField('Tipo:')
    prioridad = TextField('Prioridad:')
    costo = IntegerField('Costo:')
    version = TextField('Version')
    fecha_creacion = TextField('Fecha Creacion:')
    complejidad = TextField('Complejidad:')
    duracion = TextField('Duracion:')
    descripcion = TextField('Descripcion:')
    observacion = TextField('Observacion:')
    estado = TextField('Estado:')



class ItemEditable(Form):
    """
        Formulario de edicion de items
    """
    nombre = TextField('Nombre:') 
    prioridad = SelectField('Prioridad:')
    costo = IntegerField('Costo:')
    estado = SelectField('Estado:')
    complejidad = TextField('Complejidad:')
    duracion = TextField('Duracion:')
    descripcion = TextField('Descripcion:')
    observacion = TextField('Observacion:')
    

class F(ItemCrear):
        pass
    
class G(ItemNoEditable):
        pass

class H(ItemEditable):
        pass



class ElegirFaseForm(Form):
    """
        Formulario de seleccion de fases
    """
    fases =  TextField()
    

    
class ElegirTipoItem(Form):
    """
        Formulario de seleccion de fases
    """
    tiposItems =  TextField()
    
class ArchivoForm(Form):
    archivo = FileField("Seleccione un archivo")

class ItemVerHistorial(Form):
    """
        Formulario donde se visualizara el historial del item
    """
    nombre = TextField('Item:')
        
    estados = SelectMultipleField('Estados del item:', coerce=int,
        widget=widgets.ListWidget(prefix_label=False), option_widget=widgets.Option())
    datos = SelectMultipleField('Prioridad, Costo y complejidad del item:', coerce=int,
        widget=widgets.ListWidget(prefix_label=False), option_widget=widgets.Option())
    descripcion = SelectMultipleField('Descripcion, Observaciones:', coerce=int,
        widget=widgets.ListWidget(prefix_label=False), option_widget=widgets.Option())
    antecesores = SelectMultipleField('Antecesores del item:', coerce=int,
        widget=widgets.ListWidget(prefix_label=False), option_widget=widgets.Option())
    padres = SelectMultipleField('Padres del item:', coerce=int,
        widget=widgets.ListWidget(prefix_label=False), option_widget=widgets.Option())
    
class SeleccionarVersionItem(Form):
    versiones =  SelectMultipleField('Versiones del Item:', coerce=int,
        widget=widgets.ListWidget(prefix_label=False), option_widget=widgets.RadioInput())
    item = TextField('Item seleccionado:')
    
class ReversionItem(Form):
    """
        Formulario de reversion de items
    """
    nombre = TextField('Nombre:') 
    prioridad = TextField('Prioridad:')
    costo = TextField('Costo:')
    #estado = TextField('Estado:')
    complejidad = TextField('Complejidad:')
    duracion = TextField('Duracion:') 
    
